package com.sky.service;

import com.sky.domain.CareHistory;
import com.sky.domain.CareOrder;
import com.sky.domain.CareOrderItem;
import com.sky.dto.CareHistoryDto;
import com.sky.dto.CareOrderFormDto;

import java.util.List;

/**
 * @author sky
 * @create 2021-07-16 16:47
 */
public interface CareService {

    /**
     * 根据患者ID查询病历列表
     */
    List<CareHistory> queryCareHistoryByPatientId(String patientId);

    /**
     * 根据病历信息查询处方信息
     */
    List<CareOrder> queryCareOrdersByChId(String chId);

    /**
     * 根据处方ID查询处方详情信息
     */
    List<CareOrderItem> queryCareOrderItemsByCoId(String coId);

    List<CareOrderItem> queryCareOrderItemsByCoId(String coId, String status);

    /**
     * 保存或更新病历信息
     */
    CareHistory saveOrUpdateCareHistory(CareHistoryDto careHistoryDto);

    /**
     * 根据挂号单号 查询对应的病历信息
     */
    CareHistory queryCareHistoryByRegId(String regId);

    /**
     * 根据病历ID 查询对应的病历信息
     */
    CareHistory queryCareHistoryByChId(String chId);

    /**
     * 保存开诊详情
     */
    int saveCareOrderItem(CareOrderFormDto careOrderFormDto);

    /**
     * 根据处方详情ID 查询处方详情数据
     */
    CareOrderItem queryCareOrderItemByItemId(String itemId);

    /**
     * 根据详情ID 删除详情信息
     */
    int deleteCareOrderItemByItemId(String itemId);

    /**
     * 完成就诊
     */
    int visitComplete(String regId);

    /**
     * 发药
     */
    String doMedicine(List<String> itemIds);

    /**
     * 通过处方Id查询药用处方表
     */
    CareOrder queryCareOrdersByCoId(String coId);

    List<CareOrderItem> queryCareOrderItemsByStatus(String coType, String status);
}
